package com.xoms.admin.persist.dao;

import java.util.List;

import com.xoms.admin.model.ProCategoryBean;
import com.xoms.admin.model.vo.ProCategoryVo;
import com.xoms.admin.model.vo.TreeNodeBean;

public interface ProCategoryDao {
	
	/**
	 * 根据姓名获取分类名称
	 * @param name
	 * @return
	 */
	ProCategoryBean selectOneByName(String name);
	
	/**
	 * 新建分类名称
	 * @param data
	 * @return
	 */
	int insert(ProCategoryBean data);
	
	/**
	 * 更新分类名称
	 * @param data
	 * @return
	 */
	int update(ProCategoryBean data);
	
	/**
	 * 根据id获取分类数据
	 * @param cid
	 * @return
	 */
	ProCategoryBean selectOneById(String cid);
	
	/**
	 * 获取分类下商品数量
	 * @param cid
	 * @return
	 */
	int selectCount2Category(String cid);
	
	/**
	 * 删除分类
	 * @param cid
	 * @return
	 */
	int del(String cid);
	
	/**
	 * 查询所有分类
	 * @param isHq 
	 * @param parentId 
	 * @return
	 */
	List<ProCategoryVo> selectAllCates();
	
	/**
	 * 查询所有分类
	 * @return
	 */
	List<TreeNodeBean> selectCategores();
	
	/**
	 * 查询总部分类
	 * @return
	 */
	List<ProCategoryVo> selectHqCates();
	
	/**
	 * 查询总部树形结构
	 * @param type 
	 * @return
	 */
	List<TreeNodeBean> selectHqCateTrees(Integer type);
	
	/**
	 * 获取总部一级分类
	 * @return
	 */
	List<TreeNodeBean> selectHqFirstCateTrees();
	
	/**
	 * 获取分类下最大顺序
	 * @param parentId
	 * @return
	 */
	Integer selectMaxSort(String parentId);
	
	/**
	 * 根据父节点查询
	 * @param cates
	 * @return
	 */
	List<TreeNodeBean> selectCategoresByPid(List<TreeNodeBean> cates);
	
	/**
	 * 商品分类
	 * @param sortList
	 * @return
	 */
	int updateSorts(List<String> sortList);

}
